# -*- coding: utf-8 -*-
#
#  Copyright 2008  Luděk Cigler <luc@matfyz.cz>
#  $Id$
#
#  This file is part of SCSPSampler.
# 
#  SCSPSampler is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 3 of the License, or
#  (at your option) any later version.
# 
#  Hollo is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
# 
#  You should have received a copy of the GNU General Public License
#  along with this program. If not, see <http://www.gnu.org/licenses/>.
#

Import('env')

celar_gibbs_node = env.Program(target = 'celar_gibbs', source = Split('celar_gibbs.cpp ../src/utils.cpp \
                                                    ../src/csp.cpp \
                                                    ../src/celar.cpp ../src/gibbs_sampler.cpp \
                                                    ../src/optparse/optparse.cpp ../src/domain_interval.cpp'))

ijgp_test_node = env.Program(target = 'ijgp_test', source = Split('ijgp_test.cpp ../src/utils.cpp \
                                                    ../src/csp.cpp ../src/graph.cpp ../src/domain_interval.cpp \
                                                    ../src/celar.cpp ../src/ijgp.cpp \
                                                    ../src/ijgp_sampler.cpp \
                                                    ../src/optparse/optparse.cpp'))

optparse_test_node = env.Program(target = 'optparse', source = Split('optparse.cpp ../src/optparse/optparse.cpp'))

#celar_exact_node = env.Program(target = 'celar_exact', source = Split('celar_exact.cpp ../src/celar.cpp \
#                                                    ../src/utils.cpp \
#                                                    ../src/exact/celar_exact.cpp \
#                                                    ../src/exact/CommonMain.cc ../src/exact/Conversions.cc \
#                                                    ../src/exact/Solve.cc ../src/exact/getopt.cc \
#                                                    ../src/optparse/optparse.cpp'))

celar_gecode_node = env.Program(target = 'celar_gecode', source = Split('celar_gecode.cpp \
                                                    ../src/gecode/support.cc \
                                                    ../src/gecode/timer.cc \
                                                    ../src/utils.cpp ../src/csp.cpp ../src/celar.cpp \
                                                    ../src/optparse/optparse.cpp'))

intervals_node = env.Program(target = 'intervals', source = Split('intervals.cpp ../src/domain_interval.cpp ../src/utils.cpp ../src/csp.cpp ../src/celar.cpp'))

intel_gecode_node = env.Program(target = 'intel_gecode', source = Split('intel_gecode.cpp \
                                                    ../src/gecode/support.cc \
                                                    ../src/gecode/timer.cc \
                                                    ../src/utils.cpp \
                                                    ../src/optparse/optparse.cpp'))


env.Alias("celar_gibbs", celar_gibbs_node)
env.Alias("ijgp_test", ijgp_test_node)
env.Alias("optparse", optparse_test_node)
#env.Alias("celar_exact", celar_exact_node)
env.Alias("celar_gecode", celar_gecode_node)
env.Alias("intel_gecode", intel_gecode_node)
env.Alias("intervals", intervals_node)

